package cn.wolfcode.luowowo.article.service;

import cn.wolfcode.luowowo.article.domain.Destination;
import cn.wolfcode.luowowo.common.query.DestinationQuery;
import cn.wolfcode.luowowo.common.query.QueryObject;
import cn.wolfcode.luowowo.common.util.AjaxResult;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 目的地服务
 */
public interface IDestinationService {
    /**
     * 后台高级查询目的地列表
     * @param qo
     * @return
     */
    PageInfo<Destination> query(DestinationQuery qo);

    /**
     * 吐司
     * @param parentId
     * @return
     */
    List<Destination> toasts(Long parentId);

    /**
     * 修改目的地热门状态
     * @param id
     * @return 返回值为封装好的结果
     */
    AjaxResult changeHotState(Long id);
    /**
     * 查询所有目的地(只有id,name)
     * @return
     */
    List<Destination> selectAllDests();

    /**
     * 根据区域id查询下属的目的地,注意是全部的目的地
     * @param rid
     * @return
     */
    List<Destination> selectDestByRegionId(Long rid);

    /**
     * 根据区域id查询下属的热门目的地,id为-1 的时候查询的是国内的
     * @param regionId
     * @return
     */
    List<Destination> selectHotDestByRegionId(Long regionId);

    /**
     * 根据id查
     * @param id
     * @return
     */
    Destination selectByDestId(Long id);

    /**
     * 获取指定目的地的国家
     * @param destId
     * @return
     */
    Destination getCountry(Long destId);

    /**
     * 获取指定目的地的省份(如果没有返回null)
     * @param destId
     * @return
     */
    Destination getProvince(Long destId);

    /**
     * 查询得到全部目的地(全部字段)
     * @return
     */
    List<Destination> list();
}
